// 给定一个字符串 s 和一个整数 k，从字符串开头算起，每计数至 2k 个字符，就反转这 2k 字符中的前 k 个字符。

// 如果剩余字符少于 k 个，则将剩余字符全部反转。
// 如果剩余字符小于 2k 但大于或等于 k 个，则反转前 k 个字符，其余字符保持原样。

class Solution {
public:
    string reverseStr(string s, int k) {
        int length = s.size();
        int count = 0;
        int begin =0;
        int end = 0;
        while(length >= 0){
            begin = 0 + 2 * k * count;
            if(length <= k)
                end = s.size(); //左闭右开，不需要-1                  
            else
                end = begin + k;//左闭右开，不需要-1
            
            reverse(s.begin() + begin, s.begin() + end);//翻转
            length -= 2 * k; 
            count++;
        }
        return s;
    }
};